package com.jwxt;

import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * 加密类
 * 用于加密和解密
 * 通过调用该类的方法，可以加密和解密
 */
public class Crypto {

    /**
     * 加密
     * @param str 要加密的字符串
     * @return 加密后的字符串
     */
    public static String encrypt(String str) {
        byte[] bytesArray = null;
        byte[] digestBytes = null;

        MessageDigest md = null;
        try {
            // 用 md5 加密
            md = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

        // 将字符串转换为字节数组
        bytesArray = str.getBytes(StandardCharsets.UTF_8);

        // 将字节数组进行加密
        if (md != null) {
            digestBytes = md.digest(bytesArray);
        }

        // 将加密后的字节数组转换为字符串
        StringBuilder sb = new StringBuilder();

        if (digestBytes != null) {
            for (byte digestByte : digestBytes) {
                sb.append(Integer.toString((digestByte & 0xff) + 0x100, 16).substring(1));
            }
        }

        return sb.toString();
    }
}
